package com.insight.dto.datasource;

import com.insight.common.enums.DatabaseType;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;

/**
 * T029: 数据源响应DTO
 * 返回给前端的数据源信息（不包含密码）
 *
 * @author Insight Team
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DataSourceResponse {

    /**
     * 数据源ID
     */
    private Long id;

    /**
     * 数据源名称
     */
    private String name;

    /**
     * 数据源描述
     */
    private String description;

    /**
     * 数据库类型
     */
    private DatabaseType dbType;

    /**
     * 数据库类型显示名称
     */
    private String dbTypeDisplayName;

    /**
     * 数据库主机地址
     */
    private String host;

    /**
     * 数据库端口
     */
    private Integer port;

    /**
     * 数据库名称
     */
    private String databaseName;

    /**
     * 数据库用户名
     */
    private String username;

    /**
     * 额外连接属性
     */
    private String connectionProperties;

    /**
     * 是否启用
     */
    private Boolean enabled;

    /**
     * 连接池大小
     */
    private Integer connectionPoolSize;

    /**
     * 连接超时时间（毫秒）
     */
    private Integer connectionTimeoutMs;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;

    /**
     * 创建人
     */
    private String createdBy;

    /**
     * 更新人
     */
    private String updatedBy;

    /**
     */

    /**
     * JDBC URL（动态生成）
     */
    private String jdbcUrl;
}
